﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using BusinessLogicLayer;
using Entities;
using DataAccessLayer;
using DevComponents.DotNetBar;
using BusinessLogicLayer;


namespace QuanLyTKB_TienDoGD.QuanLyTKBDeNghi
{
    public partial class frmQLTKBDeNghi : Office2007Form
    {
        private IRepository<QLTKBDeNghi> _repository;

        List<QLTKBDeNghi> ds = new List<QLTKBDeNghi>();
        QLTKBDeNghi ql;
        
        private QLyTKBDeNghiManager _manager;


        public frmQLTKBDeNghi()
        {
            InitializeComponent();
          
        }

        private void frmQLTKBDeNghi_Load(object sender, EventArgs e)
        {
            btnLamMoi.PerformClick();
        }

        private void btnLamMoi_Click(object sender, EventArgs e)
        {
            _repository = new Repository<QLTKBDeNghi>();
            
            _manager = new QLyTKBDeNghiManager(_repository);

            ds = QLTKBDeNghi.Repository.GetAll().ToList();
            dgvDSTKB.DataSource = ds;
            //txtTuan.ResetText();
        }



        private void txtTuan_TextChanged(object sender, EventArgs e)
        {
            try
            {
                List<QLTKBDeNghi> dsTKB = QLTKBDeNghi.Repository.Find(s => s.Tuan == Convert.ToInt32(txtTuan.Text)).ToList();
                if (dsTKB.Count > 0)
                    dgvDSTKB.DataSource = dsTKB;
                else
                    dgvDSTKB.DataSource = null;
            }
            catch { }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {

            frmTaoTKBDeNghi frm = new frmTaoTKBDeNghi(_manager, this);

            frm.Text = "Thêm Thời khóa biểu đề nghị";
            frm.btnLuu.Text = "Thêm";
            frm.txtMaDN.ReadOnly = false;
            frm.labelX5.Visible = false;
            frm.dtpNgayTao.Visible = false;
           
            //frm.btnUpdate.Visible = false;

            frm.Text = "Tạo Thời Khóa Biểu";
            frm.ShowDialog();
            btnLamMoi.PerformClick();
        }

        public void btnCapNhat_Click(object sender, EventArgs e)
        {

            if (dgvDSTKB.SelectedRows.Count > 0)
            {
                ql = new QLTKBDeNghi();
                DataGridViewRow dgrow = dgvDSTKB.SelectedRows[0];
                ql.MaDN= dgrow.Cells[0].Value.ToString();
                ql.Tuan = Convert.ToInt32(dgrow.Cells[1].Value.ToString());
                ql.TuNgay = Convert.ToDateTime(dgrow.Cells[2].Value.ToString());
                ql.GhiChu = dgrow.Cells[3].Value.ToString();
                ql.NgayLap = Convert.ToDateTime(dgrow.Cells[4].Value.ToString());

                var frm = new frmTaoTKBDeNghi(_manager, this, ql);
                
                frm.Text = "Cập nhật Thời khóa biểu đề nghị";
                frm.btnLuu.Text = "Cập nhật";
                frm.txtMaDN.ReadOnly = true;
                frm.labelX5.Visible = true;
                frm.dtpNgayTao.Visible = true;
                
                frm.Show();
                dgvDSTKB.DataSource = _repository.GetAll().ToList();
            }
            else MessageBox.Show("Vui lòng chọn TKB đề nghị để cập nhật", "Thông Báo");
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (dgvDSTKB.SelectedRows.Count > 0)
            {
                if (MessageBox.Show("Bạn có muốn xóa TKB đề nghị đã chọn ?", "Xóa TKB đề nghị", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) == DialogResult.Cancel)
                    return;
                foreach (DataGridViewRow row in dgvDSTKB.Rows)
                {
                    if (row.Selected)
                    {
                        var aResult = _manager.Delete(row.Cells[0].Value.ToString());
                        if (aResult.Success) MessageBox.Show("Xóa thành công");
                        else MessageBox.Show("Xóa không thành công\nDữ liệu TKB đề nghị này đang được sử dụng! ", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                dgvDSTKB.DataSource = _repository.GetAll().ToList();
            }
            else MessageBox.Show("Vui lòng chọn TKB đề nghị cần xóa", "Thông Báo");
        }

        private void btnChiTiet_Click(object sender, EventArgs e) 
        {
            if (dgvDSTKB.SelectedRows.Count > 0)
            {
                DataGridViewRow dgrow = dgvDSTKB.SelectedRows[0];      

                frmChiTietTKBDeNghi frmchitiet = new frmChiTietTKBDeNghi();
                frmchitiet.MaDN = dgrow.Cells[0].Value.ToString();

                frmchitiet.Show();
                
            }
            else
                MessageBox.Show("Vui lòng chọn TKB đề nghị cần xem", "Thông Báo");
        }
    }
}
